EasyPQCTest.SignatureTest
Creates two keys and a signature, before testing both VerifySignature methods.
public async Task SignatureTest()
{
// Generate key pair
var (publicKeyDict, privateKeyDict) = await EasyPQC.Signatures.CreateKeys();
var message = "This is a test message.";
// Encode and display key data
Console.WriteLine("Public Key (Base64):");
foreach (var kv in publicKeyDict)
Console.WriteLine($"{kv.Key}: {Convert.ToBase64String(kv.Value)}");
Console.WriteLine("\nPrivate Key (Base64):");
foreach (var kv in privateKeyDict)
Console.WriteLine($"{kv.Key}: {Convert.ToBase64String(kv.Value)}");
Console.WriteLine();
// Create signature
var signature = await EasyPQC.Signatures.CreateSignature(privateKeyDict, message);
Console.WriteLine("Signature (Base64): " + Convert.ToBase64String(signature));
Console.WriteLine();
// Verify signature
var isValid = await EasyPQC.Signatures.VerifySignature(publicKeyDict, signature, message);
Console.WriteLine("Signature valid Test Result: " + isValid);
Console.WriteLine();
// Verify with an invalid message
var invalidMessage = "InvalidSignature";
var invalidTest = await EasyPQC.Signatures.VerifySignature(publicKeyDict, signature, Encoding.UTF8.GetBytes(invalidMessage));
Console.WriteLine("Invalid Signature Test Result: " + invalidTest);
Console.WriteLine("\n\n");
int i = 0;
while (12 <= i)
{
Console.WriteLine(Environment.NewLine);
i++;
}
Console.WriteLine("Summary:");
Console.WriteLine("Signature valid Test Result: " + isValid);
Console.WriteLine("Invalid Signature Test Result: " + invalidTest);
}